/**
 * 第2章 通过行为参数化传递代码
 * 代码清单-p1ch02a-23页a：第一个解决方案-筛选绿苹果 {@link top.kaoshanji.p1ch02a.FilteringApples}
 * 代码清单-p1ch02a-24页a：把颜色作为参数 {@link top.kaoshanji.p1ch02a.FilteringApples}
 * 代码清单-p1ch02a-24页b：把重量作为参数 {@link top.kaoshanji.p1ch02a.FilteringApples}
 * 代码清单-p1ch02a-25页a：对选择标准建模 {@link top.kaoshanji.p1ch02a.ApplePredicate}
 * 代码清单-p1ch02a-25页b：仅仅选出重的苹果 {@link top.kaoshanji.p1ch02a.FilteringApples}
 * 代码清单-p1ch02a-25页c：仅仅选出绿苹果 {@link top.kaoshanji.p1ch02a.FilteringApples}
 * 代码清单-p1ch02a-26页a：根据抽象条件筛选 {@link top.kaoshanji.p1ch02a.FilteringApples}
 * 代码清单-p1ch02a-27页a：应对任何涉及苹果属性的需求变更 {@link top.kaoshanji.p1ch02a.FilteringApples}
 * 代码清单-p1ch02a-31页a：第五次尝试：使用匿名类 {@link top.kaoshanji.p1ch02a.FilteringApples}
 * author kaoshanji
 * ^_^
 * create time 2025/2/10 9:51
 */
package top.kaoshanji.p1ch02a;